package com.jwds.digital.bios.business.service.service.dispatch;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jwds.digital.bios.business.core.infrastructure.dto.dispatch.DispatchConfiguratReqDTO;
import com.jwds.digital.bios.business.core.infrastructure.dto.feign.BasicStockBinReqDTO;
import com.jwds.digital.bios.business.core.infrastructure.entity.dispatch.DispatchConfigurat;
import com.jwds.digital.bios.business.core.infrastructure.vo.belt.BeltRouteTargetHisRespVO;
import com.jwds.digital.bios.business.core.infrastructure.vo.dispatch.DispatchConfiguratRespVO;
import com.jwds.digital.bios.business.core.infrastructure.vo.feign.BasicStockBinRespVO;
import com.jwds.digital.bios.business.core.infrastructure.vo.feign.FlowBasicRespVO;
import com.jwds.tdc.framework.application.lib.page.PageRequest;
import com.jwds.tdc.framework.application.lib.page.PageResponse;

import java.util.List;

/**
 * 规则配置接口
 *
 * @author 林柏云
 * @date 2024-10-24
 */
public interface IDispatchConfiguratService extends IService<DispatchConfigurat>{

  /**
   * 通过id查询
   * @param id 主键id
   * @return RespVO 查询结果
   */
  DispatchConfiguratRespVO queryById(Long id);

  /**
   * 分页查询
   * @param pageRequest 分页查询参数
   * @return pageResponse 分页查询结果
   */
  PageResponse<DispatchConfiguratRespVO> page(PageRequest<DispatchConfiguratReqDTO> pageRequest);



  /**
   * 新增
   * @param reqDto 新增对象
   */
  void add(DispatchConfiguratReqDTO reqDto);


  /**
   * 更新
   * @param reqDto 更新对象
   */
  void update(DispatchConfiguratReqDTO reqDto);

  /**
   * 根据Id删除
   * @param id 主键id
   */
  void delete(Long id);

  /*
  *
  * 起点设备或者起点设备
  * */
  List<BasicStockBinRespVO> ScraperMachine(List<BasicStockBinRespVO> list);

  /*
  *
  * 仓容百分比到达上跟换终点料仓
  * */
  List<BasicStockBinRespVO> PreIngredientWarehouse(List<BasicStockBinRespVO> list);
/*
*
*
* 所有料仓已补至校高料位
* */
  List<BasicStockBinRespVO> ScraperMachineAndBin(List<BasicStockBinReqDTO> list);

  /**
  * 优先共不足的料仓
  * */
  List<BasicStockBinRespVO> InsufficientSilo (List<BasicStockBinReqDTO> list);

/*
*
* 线路能耗
* */
List<BeltRouteTargetHisRespVO> LineEnergy(List<FlowBasicRespVO> list);

  /*
  *
  *
  * 是否是要运输的物料
  * */
  List<BasicStockBinRespVO> DispatchMaterial(List<BasicStockBinReqDTO> list);


  /**********扩展查询************/

}
